/**
*
*/
package de.yaams.extensions.rgssproject.map.nevent.command;
import javax.swing.JButton;
import de.yaams.extensions.jruby.RubyHelper;
import de.yaams.extensions.rgssproject.database.RGSS1Helper;
import de.yaams.extensions.rgssproject.database.RGSS1Helper.Type;
import de.yaams.extensions.rgssproject.database.form.RubyForm;
import de.yaams.extensions.rgssproject.map.YMapView;
import de.yaams.extensions.rgssproject.map.form.FormSwitchVarSelector;
import de.yaams.extensions.rgssproject.map.nevent.core.CommandFormHelper;
import de.yaams.extensions.rgssproject.map.nevent.core.EventCode;
import de.yaams.extensions.rgssproject.map.nevent.core.EventCommand;
import de.yaams.maker.helper.gui.AE;
import de.yaams.maker.helper.gui.YDialog;
import de.yaams.maker.helper.gui.form.FormButton;
import de.yaams.maker.helper.gui.form.FormComboBox;
import de.yaams.maker.helper.gui.form.FormHelper;
import de.yaams.maker.helper.gui.form.core.FormBuilder;
import de.yaams.maker.helper.gui.form.core.FormHeader;
import de.yaams.maker.helper.language.I18N;
/**
* @author abt
*
*/
public class TeleportCommand extends EventCommand {
protected final String[] types = new String[] { "Teleport Player", "Teleport Event" };
/*
* (non-Javadoc)
*
* @see de.yaams.extensions.map.nevent.core.EventCommand#getIcon()
*/
@Override
public String getIcon() {
return "map";
}
/*
* (non-Javadoc)
*
* @see
* de.yaams.extensions.map.nevent.core.EventCommand#getIcon(de.yaams.extensions
* .map.nevent.core.EventCode)
*/
@Override
public Object getIcon(EventCode e) {
return "map";
}
/*
* (non-Javadoc)
*
* @see de.yaams.extensions.map.nevent.core.EventCommand#getStartParameter()
*/
@Override
public String getStartParameter() {
return "0,0,0,0,0";
}
/*
* (non-Javadoc)
*
* @see de.yaams.extensions.map.nevent.core.EventCommand#getName()
*/
@Override
public String getName() {
return I18N.t("Teleportiere den Spieler/Events");
}
/*
* (non-Javadoc)
*
* @see de.yaams.extensions.map.nevent.core.EventCommand#getGroup()
*/
@Override
public String getGroup() {
return I18N.t("Map");
}
/*
* (non-Javadoc)
*
* @see
* de.yaams.extensions.map.nevent.core.EventCommand#buildPanel(de.yaams.
* core.helper.gui.form.core.FormBuilder,
* de.yaams.extensions.map.nevent.core.EventCode)
*/
@Override
public void buildPanel(final FormBuilder f, final EventCode e) {
addInt(e, 5, 0);
// build panel
f.getHeader("basic").setColumn(4);
FormComboBox c = CommandFormHelper.buildCodeIdChancer(e, I18N.t("Teleport"), new String[] { "201", "202" }, types);
f.addElement("basic.type", c.setSorting(-1));
// which typ?
FormComboBox d = RubyForm.getComboBoxNum(I18N.t("Position"), new String[] { "0", "1" },
new String[] { "Spezifisch", RGSS1Helper.getName(Type.VARIABLE) }, e.getParameters(), 0);
f.addElement("basic.kind", d);
// add another
f.addElement(
"basic.direction",
RubyForm.getComboBoxNum(I18N.t("Richtung"), new String[] { "0", "2", "4", "6", "8" },
new String[] { "Alte Richtung behalten", "Runter", "Links", "Rechts", "Hoch" }, e.getParameters(), 4).setSorting(1));
f.addElement(
"basic.fade",
FormHelper.setEnabeldWhenRightElementSelect(
c,
RubyForm.getComboBoxNum(I18N.t("Fading"), new String[] { "0", "1" }, new String[] { "Ja", "Nein" },
e.getParameters(), 5).setSorting(1), "201"));
// add map
f.addHeader("map", new FormHeader(I18N.t("Spezifisch"), "map"));
f.addElement("map.map",
FormHelper.setEnabeldWhenRightElementSelect(d, new FormButton(getPos(e, I18N.t("Neue Position")), "map", new AE() {
@Override
public void run() {
// load
YMapView map = new YMapView(e.getId() == 201 ? RubyHelper.toInt(e.getParameters(), 1) : 1, e.getYecl().getProject());
map.installClickSupport();
map.setSelectX(RubyHelper.toInt(e.getParameters(), 2));
map.setSelectY(RubyHelper.toInt(e.getParameters(), 3));
if (e.getId() == 201) {
map.installMapChance();
}
// show
if (YDialog.show(I18N.t("Neue Position"), "map", map, true)) {
// set it
RubyHelper.setNum(e.getParameters(), 2, map.getSelectX());
RubyHelper.setNum(e.getParameters(), 3, map.getSelectY());
if (e.getId() == 201) {
RubyHelper.setNum(e.getParameters(), 1, map.getMapID());
}
}
((JButton) f.getElement("map.map").getElement()).setText(getPos(e, I18N.t("Neue Position")));
}
}), "0"));
// add vars
f.addHeader("var", new FormHeader(RGSS1Helper.getName(Type.VARIABLE), RGSS1Helper.getIcon(Type.VARIABLE)).setColumn(6));
f.addElement(
"var.x",
FormHelper.setEnabeldWhenRightElementSelect(d,
new FormSwitchVarSelector(e.getYecl().getProject(), I18N.t("X"), e.getParameters(), 2, Type.VARIABLE), "1"));
f.addElement(
"var.y",
FormHelper.setEnabeldWhenRightElementSelect(d,
new FormSwitchVarSelector(e.getYecl().getProject(), I18N.t("Y"), e.getParameters(), 3, Type.VARIABLE), "1"));
f.addElement(
"var.id",
FormHelper.setEnabeldWhenRightElementSelect(c,
new FormSwitchVarSelector(e.getYecl().getProject(), I18N.t("Map"), e.getParameters(), 1, Type.VARIABLE), "201"));
}
/**
*
* @param e
* @return
*/
protected String getPos(final EventCode e, String title) {
return I18N.t("{3}{2} {0}/{1}", RubyHelper.toInt(e.getParameters(), 2), RubyHelper.toInt(e.getParameters(), 3),
e.getId() == 201 ? RubyHelper.toInt(e.getParameters(), 1) + " -" : "", title + (e.getId() == 201 ? " " : ""));
}
/*
* (non-Javadoc)
*
* @see
* de.yaams.extensions.map.nevent.core.EventCommand#getTitle(de.yaams.extensions
* .map.nevent.core.EventCode)
*/
@Override
protected String getInternTitle(EventCode e) {
return getPos(e, types[e.getId() - 201]);
// return I18N.t("{1}: {0}", CommandFormHelper.getOperatorText(e,
// e.getId() == 125 ? 0 : 1), types[e.getId() - 125]);
}
}